﻿#define _CRT_SECURE_NO_WARNINGS

//#include <iostream>
//#include <algorithm>
//using namespace std;

//struct stack
//{
//	int* arr;
//	int size;
//	int capacity;
//};

//class stack
//{
////这是域访问限定符，可以暂时不管
//public:
//	//假设返回有效数据个数
//	//定义一个成员函数size来解决，它默认为内联函数
//	int size()
//	{
//		return _size;
//	}
//
//private:
//	int* _arr;
//	int _size;
//	int _capacity;
//};

//class stack
//{
//	//这是类访问限定符public，被它修饰的成员变量或函数
//	//将可以被外界直接访问
//public:
//	int size()
//	{
//		return _size;
//	}
//
//	//这时类访问限定符private，被它修饰的成员变量或函数
//	//将不能直接被外界直接访问
//private:
//	int* _arr;
//	int _size;
//	int _capacity;
//};

//int main()
//{
//	stack st;
//	//调用类中的成员函数的方法就是
//	//类名.函数名，这里size没有参数也就不用传参
//	cout << st.size() << endl;
//	return 0;
//}

//int main()
//{
//	stack st;
//	//这里就是我们不使用size这个成员函数
//	//而是直接去访问里面的成员_size
//	cout << st._size << endl;
//	return 0;
//}

//class stack
//{
//public:
//	//声明和定义分离，这里是声明(使用了之前学过的缺省参数)
//	void Init(int n = 4);
//
//private:
//	int* _arr;
//	int _size;
//	int _capacity;
//};

//void stack::Init(int n)
//{
//	_arr = (int*)malloc(n * sizeof(int));
//	if (_arr == NULL)
//	{
//		perror("malloc");
//		return;
//	}
//	_size = 0;
//	_capacity = n;
//}

//void Init(int n)
//{
//	_arr = (int*)malloc(n * sizeof(int));
//	if (_arr == NULL)
//	{
//		perror("malloc");
//		return;
//	}
//	_size = 0;
//	_capacity = n;
//}

//int main()
//{
//	stack st;
//	st.Init();
//	return 0;
//}

//#include <iostream>
//#include <algorithm>
//using namespace std;

//struct A
//{
//
//};
//
//int main()
//{
//	A a;
//	cout << sizeof(a) << endl;
//	return 0;
//}

// 计算⼀下A / B / C实例化的对象是多⼤？
//class A
//{
//public:
//	void Print()
//	{
//		cout << _ch << endl;
//	}
//private:
//	char _ch;
//	int _i;
//};
//
//class B
//{
//public:
//	void Print()
//	{
//		//...
//	}
//};
//
//class C
//{};
//
//int main()
//{
//	A a;
//	B b;
//	C c;
//	cout << sizeof(a) << endl;
//	cout << sizeof(b) << endl;
//	cout << sizeof(c) << endl;
//	return 0;
//}

#include <iostream>
#include <algorithm>
using namespace std;

//class Date
//{
//public:
//	void Init(int year = 1900, int month = 1, int day = 1)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//
//	void Print()
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	Date d1;
//	Date d2;
//	d1.Init(2025, 1, 1);
//	d2.Init(2025, 1, 6);
//
//	d1.Print();
//	d2.Print();
//	return 0;
//}

#include<iostream>
using namespace std;
class A
{
public:
	void Print()
	{
		cout << "A::Print()" << endl;
		cout << _a << endl;
	}

private:
	int _a;
};

int main()
{
	A* p = nullptr;
	p->Print();
	return 0;
}